摄像机 (Camera) 节点可用于显示 Kanzi Studio 工程及 Kanzi 应用程序中场景 (Scene) 的内容。当您创建场景 (Scene) 时,它将只包含一个摄像机 (Camera) 节点和一个方向光 (Directional Light)。这是该场景 (Scene) 的默认摄像机 (Camera) 节点和预览摄像机。当摄像机 (Camera) 节点是预览摄像机时,您可以在预览 (Preview) 中通过摄像机 (Camera) 节点看到场景 (Scene)。在工程 (Project)中,预览摄像机标有(预览)(Preview)。
请勿使用渲染变换 (Render Transformation) 或布局变换 (Layout Transformation) 属性缩放摄像机 (Camera) 节点或者摄像机 (Camera) 节点的祖先。当缩放摄像机 (Camera) 节点时,会影响投影,并导致投射与您设置的参数不匹配。
要设置摄像机 (Camera) 节点的位置:
控件 | 描述 (Description) |
---|---|
点击鼠标左键并拖动。 | 旋转 (Rotate) |
| 平移 |
| 缩放 |
控件 | 描述 (Description) |
---|---|
W | 前移。 按下Shift 使速度加倍。 |
S | 后移。 按下Shift 使速度加倍。 |
A | 左移。 按下Shift 使速度加倍。 |
D | 右移。 按下Shift 使速度加倍。 |
Q | 左倾。 |
E | 右倾。 |
点击鼠标左键并拖动。 | 旋转 (Rotate) |
点击鼠标中键并拖动。 | 平移 |
滚动鼠标滚轮。 | 设置摄像机速度。 向下滚动降低摄像机速度。 向上滚动提高摄像机速度。 |
控件 | 描述 |
---|---|
将摄像机的当前位置存储到预览摄像机 (Camera) 节点。 | |
将摄像机重置为预览摄像机 (Camera) 节点的当前位置。 | |
从摄像机的当前位置创建一个新的摄像机 (Camera) 节点。 | |
将摄像机引入在工程 (Project) 或预览 (Preview) 中选择的 3D 对象。 | |
选择您要通过哪个摄像机 (Camera) 节点查看当前场景。 | |
使用 3D 节点时,以度为单位设置摄像机的视野。 |
当摄像机 (Camera) 节点是预览摄像机时,您可以在预览 (Preview) 中通过摄像机 (Camera) 节点看到场景 (Scene)。在工程 (Project)中,预览摄像机标有(预览)(Preview)。
要将摄像机 (Camera) 节点转为预览摄像机:
或
如果即使在您设置预览摄像机之后,该场景在预览 (Preview) 中也不可见,您需要激活场景。请参阅 使用场景 (Scene) 节点。
摄像机工具 (Camera tool) 可让您从一个预设视点(前、后、上、下、左、右)快速查看整个场景 (Scene) 的内容。除非打开了用于存储摄像机当前位置的选项 (),否则预设视点不会改变场景 (Scene) 中的摄像机 (Camera) 节点的位置。请参阅 设置摄像机 (Camera) 节点的位置。
要从预设视点查看处于活动状态的整个 场景 (Scene):
预设视点 | 快捷键 |
---|---|
从左侧查看整个场景 (Scene)。 | Shift+1 |
从右侧查看整个场景 (Scene)。 | Shift+2 |
从上方查看整个场景 (Scene)。 | Shift+3 |
从下方查看整个场景 (Scene)。 | Shift+4 |
从前方查看整个场景 (Scene)。 | Shift+5 |
从后方查看整个场景 (Scene)。 | Shift+6 |
您可以通过以下方式创建新的摄像机 (Camera) 节点:
或
要设置摄像机 (Camera) 节点的投影类型,请在工程 (Project) 中选择摄像机 (Camera) 节点,并在属性 (Properties) 中将投影类型 (Projection Type) 属性设置为:
创建具有透视投影的摄像机:
//创建一个名为 Camera 的摄像机。 CameraSharedPtr camera = Camera::create(domain, "Camera"); //将摄像机的投影设置为透视。 camera->setPerspectiveProjection(); //让观察框显示 3D 空间的水平 90 度锥角。 //垂直锥角由视口的长宽比确定。 camera->setFovType(Camera::YFov); camera->setFov(90.0f); camera->setZNear(0.1f); camera->setZFar(100.0f);
创建具有正交投影的摄像机:
//创建一个名为 Camera 的摄像机。 CameraSharedPtr camera = Camera::create(domain, "Camera"); //将摄像机的投影设置为相对正交。 camera->setOrthogonalProjection(Camera::OrthogonalCoordinateSystemRelative); //让观察框显示 3D 空间的 [-width,width] x [-1, 1] x [-1, 1] 部分。 //观察框的宽度由视口的长宽比确定。 camera->setOrthogonalPlaneHeight(1.0f); camera->setZNear(-1.0f); camera->setZFar(1.0f);
有关详细信息,请参阅 API reference 中的 Camera
类。
要查看 摄像机 (Camera) 节点可用属性类型和消息的完整列表,请参阅 Camera。